import json
import datetime
from django.http import HttpResponse
from app.models import *
from tools.get_now_time import get_now_time
from tools.log import log
pass_salt = "username_salt"

# 新增角色信息
def addRole(request):
    # 获取用户请求数据
    req = json.loads(request.body)
    # 获取数据
    data = dict(req.get('data', None))
    # 消去id
    data.pop('id')
    # 返回数据
    context = dict()
    try:
        # 处理数据（添加数据表）
        Role.objects.create(**data)
        # 用户添加成功
        context['result'] = 1
    except:
        context['result'] = 0
    return context


# 新增用户信息
def addUser(request):
    # 获取用户请求数据
    req = json.loads(request.body)
    # 获取数据
    data = dict(req.get('data', None))
    # 消去id
    data.pop('id')
    data={
        "email":data.get("email"),
        "name":data.get("name"),
        "gender":data.get("gender"),
        "department":data.get("department"),
        "position":data.get("position"),
        "telephone":data.get("telephone")
    }
    # 返回数据
    context = dict()
    try:
        # 处理数据（添加数据表）
        AllReport.objects.create(**data)
        # 用户添加成功
        context['result'] = 1
        
        #写入log日志
        cookie=request.get_signed_cookie("account",salt=pass_salt)
        type = "用户新增"
        time = get_now_time()
        affair = cookie+"新增了用户信息"
        log(type, time, affair)

    except:
        context['result'] = 0
    return context

# 新增仓库信息
def addWarehouse(request):
    # 获取用户请求数据
    req = json.loads(request.body)
    # 获取数据
    data = dict(req.get('data', None))
    # 消去id
    data.pop('id')
    # 返回数据
    context = dict()
    try:
        # 处理数据（添加数据表）
        Warehouse.objects.create(**data)
        # 用户添加成功
        context['result'] = 1
    except:
        context['result'] = 0
    return context


# 新增物料信息
def addMaterial(request):
    # 获取用户请求数据
    req = json.loads(request.body)
    # 获取数据
    data = dict(req.get('data', None))
    # 消去id
    data.pop('id')
    # 返回数据
    data['in_time'] = get_now_time()
    context = dict()
    try:
        # 处理数据（添加数据表）
        Material.objects.create(**data)
        # 用户添加成功
        context['result'] = 1
    except:
        context['result'] = 0
    return context


# 新增部门信息
def addDepartment(request):
    # 获取用户请求数据
    req = json.loads(request.body)
    # 获取数据
    data = dict(req.get('data', None))

    data['number'] = int(data['number'])
    # 消去id
    data.pop('id')
    # 返回数据
    context = dict()
    try:
        # 处理数据（添加数据表）
        Department.objects.create(**data)
        # 用户添加成功
        context['result'] = 1
    except:
        context['result'] = 0
    return context


# 新增申请入库信息
def addIB(request):
    # 获取申请数据
    req = json.loads(request.body)
    # 获取数据
    data = dict(req.get('data',None))
    # 通过cookie获取用户邮箱
    email = request.get_signed_cookie("account",salt=pass_salt)
    # 通过邮箱获取user对象
    obj = User.objects.get(email=email)
    # 添加数据及修改数据
    data['creation_time'] = get_now_time()
    data['inventory_quantity'] = int(data['inventory_quantity'])
    data['principal'] = obj.name
    data['email'] = email
    #去除id
    data.pop('id')
    # 返回数据
    context = dict()
    try:
        # 处理数据（添加数据表）
        IB.objects.create(**data)
        # 入库申请添加成功
        context['result'] = 1
    except:
        context['result'] = 0
    return context 

# 新增申请出库信息
def addOB(request):
    # 获取申请数据
    req = json.loads(request.body)
    # 获取数据
    data = dict(req.get('data',None))
    # 通过cookie获取用户邮箱
    email = request.get_signed_cookie("account",salt=pass_salt)
    # 通过邮箱获取user对象
    obj = User.objects.get(email=email)
    # 添加数据
    data['creation_time'] = get_now_time()
    data['outBound_quantity'] = int(data['outBound_quantity'])
    data['principal'] = obj.name
    data['email'] = email
    #去除id
    data.pop('id')
    # 返回数据
    context = dict()
    try:
        # 处理数据（添加数据表）
        OB.objects.create(**data)
        # 入库申请添加成功
        context['result'] = 1
    except:
        context['result'] = 0
    return context 


# 新增物料类别信息
def addMaterialType(request):
    # 获取申请数据
    req = json.loads(request.body)
    # 获取数据
    data = dict(req.get('data',None))
    # 去除id
    data.pop('id')
    # 返回数据
    context = dict()
    try:
        # 处理数据（添加数据表）
        MaterialType.objects.create(**data)
        # 入库申请添加成功
        context['result'] = 1
    except:
        context['result'] = 0
    return context 